package com.bw.shop2208a.mvvm

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding
import androidx.lifecycle.ViewModelProvider

/**
 * base层---activity
 */
abstract class BaseActivity<VDB : ViewDataBinding,VM : BaseViewModel>:AppCompatActivity() {
    //lateinit var 延迟初始化  格式 名称：类型  没有等号   可以在合适的地方进行初始化赋值
    lateinit var binding: VDB
    lateinit var viewModel: VM
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = DataBindingUtil.setContentView(this,getLayoutId())
        viewModel = ViewModelProvider(this)[getViewModel()]
        initViwe()
        iniData()
    }
    abstract fun initViwe()
    abstract fun iniData()
    abstract fun getLayoutId(): Int
    abstract fun getViewModel(): Class<VM>
}